package com.yhh.college_information_platform.service;

import com.yhh.college_information_platform.common.PageResult;
import com.yhh.college_information_platform.dto.CommentDTO;
import com.yhh.college_information_platform.dto.CommentQueryDTO;
import com.yhh.college_information_platform.vo.CommentVO;

/**
 * 评论Service
 *
 * @author yhh
 * @date 2025-10-26
 */
public interface CommentService {
    
    /**
     * 发布评论
     *
     * @param commentDTO 评论DTO
     * @param userId     用户ID
     * @return 评论ID
     */
    Long publishComment(CommentDTO commentDTO, Long userId);
    
    /**
     * 删除评论
     *
     * @param commentId 评论ID
     * @param userId    用户ID
     */
    void deleteComment(Long commentId, Long userId);
    
    /**
     * 获取资料的评论列表（分页）
     *
     * @param queryDTO 查询条件
     * @param userId   当前用户ID（用于判断是否已点赞）
     * @return 评论分页结果
     */
    PageResult<CommentVO> getCommentPage(CommentQueryDTO queryDTO, Long userId);
    
    /**
     * 点赞评论
     *
     * @param commentId 评论ID
     * @param userId    用户ID
     */
    void likeComment(Long commentId, Long userId);
    
    /**
     * 取消点赞评论
     *
     * @param commentId 评论ID
     * @param userId    用户ID
     */
    void unlikeComment(Long commentId, Long userId);
    
    /**
     * 判断用户是否已点赞评论
     *
     * @param commentId 评论ID
     * @param userId    用户ID
     * @return 是否已点赞
     */
    Boolean isCommentLiked(Long commentId, Long userId);
}

